
const request=require('../../utils/request.js');//获取封装的请求函数
const globleurl = require('../../utils/serverconfig.js').url;
Page({
  // 页面的初始数据
  data: {
   relist:[],

   hasMoreData: true,
   isRefreshing: false,
   isLoadingMoreData: false,
   isloding:true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //判断是否有本地缓存
    let relistsession=wx.getStorageSync('relistsession');
   if(!relistsession){
      //本地没有缓存数据
        this.requstrelist(this.queryparamas);//请求第一页数据
   }else{
     //本地有缓存数据，判断是否过期
     let time=180;//过期时间:3分钟
     if(Date.now()-relistsession.time>1000*time){
        //如果过期
        this.requstrelist(this.queryparamas);//请求第一页数据
     }else{
       //没有过期渲染缓存数据
       this.setData({relist:relistsession.relist,isloding:false});
     }
   }
 
  },
  
  //定义请求列表参数
  queryparamas:{
    page:1,//请求页码
    pagesize:6, //每页条数
  },
  pagecount:0,//总页数

  requstrelist:async function(queryparamas){
    let re= await request.myrequest('/miniapp/requestrcommend',{pagedata:queryparamas});
     //根据服务器传回的值设置总页数
    this.pagecount=re.data.pagecount;

   
    re.data.list.forEach(item=>{
      item.url=globleurl+item.url;
    });
    
    //拼接新传来的数组,渲染页面
    let newrelist=[...this.data.relist,...re.data.list];
    this.setData({relist:newrelist,isloding:false});
    //将数据存入本地缓存
    wx.setStorageSync('relistsession', {relist:this.data.relist,time:Date.now()});
   //请求到数据后关闭下拉刷新
   wx.stopPullDownRefresh();
  },

  
  onPullDownRefresh: function () {
    // 当下拉刷新时
    // 1.重置请求页面索引,重置总页数,重置session
    this.queryparamas.page=1;
    this.pagecount=0;
    wx.removeStorageSync('relistsession');
    //2.清空列表数据
    this.data.relist=[];
    //重新请求
    this.requstrelist(this.queryparamas);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let _this=this;
    /*当触底时  如果请求页码大于等于总页码数 */
    if(this.queryparamas.page>=this.pagecount){
      //没有下一页数据
    }else{
      this.queryparamas.page++;
      this.requstrelist(this.queryparamas);//请求下一页数据
    };

    if (this.data.isRefreshing || this.data.isLoadingMoreData || !this.data.hasMoreData)     {
      return
    }
    this.setData({
      isLoadingMoreData: true
    });
    //.............
    setTimeout(function () {
      _this.setData({
        isLoadingMoreData: false,
      });
    }, 2000);   
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})